<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>js字符串之截取操作</title>
</head>
<body>
  <p>字符串之截取操作</p>
  <ul>
    <li>三者都可正向截取，但第2个参数slice,substring表示结束索引(不包含)，而substr表示截取字符个数</li>
    <li>slice, substr均可反向截取(指定负数),substring如指定起始负数索引(按0计算)，指定结束负数索引(按0结算)</li>
    <li>slice比较普适，用于正反向索引位截取，substr用于正反向指定字符个数的截取，substring仅用于正向索引位截取</li>
  </ul>
  <script>
    const name = 'Miracle He'
    // 均可正向截取
    console.log(name.slice(1)) // iracle He
    console.log(name.substring(1)) // iracle He
    console.log(name.substr(1)) // iracle He
    // 均可截取指定长度：slice,substring表示结束索引(不包含)，而substr表示截取字符个数
    console.log(name.slice(1, 3)) // ir
    console.log(name.substring(1, 3)) // ir
    console.log(name.substr(1, 3)) // ira
    // slice, substr均可反向截取(指定负数),substring如只单独指定起始负数索引(按0计算)，指定结束负数索引(按0结算)
    console.log(name.slice(-2, -1)) // H
    console.log(name.substr(-2, 1)) // H
    console.log(name.substring(-2, -1)) // ""
  </script>
</body>
</html>